1. Field of the Invention
The present invention relates to direct (driverless) printing of multi-page image data, and more particularly to effective and efficient composition printing of multiple multi-page image data files as a single print job.
2. Background and Related Art
Some printers and printer controllers support the direct printing (without a print driver) of a limited number of image formats (e.g. TIFF, JPEG[2K], PNG, BMP, GIF, EXIF). However, such printers and printer controllers are limited in that they are unable to batch print multiple image files as a single print job (i.e., composition print).
One method of direct printing provides the user the ability to download (e.g., FTP) a device independent document/image file format (e.g., TIFF), which is native to the device, for printing. The document is then printed according to the device's default device settings. But this method is limited, in that: (1) It cannot do composition printing. Instead, each file is printed as a separate job with each job separately finished. (2) It requires longer processing times. By printing each image file as a separate job, the device incurs an inter-job delay between each image file. (3) It does not perform streaming conversion. If the page order in an image file is non-linear, then the entire image file may need to be read in to the device before processing can start. This results in a longer wait before a first page is output. (4) It provides no method for manipulating page order or selection of limited pages for printing. FIG. 1A is a depiction of this method.
In one improved method using a Direct Print API (DPAPI), when a TIFF file is selected for printing, the DPAPI parses each image file directory (IFD) entry and checks the file offsets to determine if the TIFF file is in streaming page order. If not, the DPAPI creates a new file and uses a relocation method which copies the contents of the non-streaming TIFF file to the new TIFF file in streaming page order.
While this is an improvement to the above, it is still limited in that: (1) It is not optimally efficient, since the TIFF data must be copied to another file, which results in slower input/output than memory access. Additionally, when the data is ready to print, the TIFF data must be read from the hard disk a second time. (2) It cannot do a composition print. Each file is printed as a separate job with each job separately finished. (3) It requires longer processing times. Besides the additional processing previously discussed, by printing each image file as a separate job, the device incurs an interjob delay between each image file. (4) It provides no method for manipulating page order or selection. FIG. 1B is a depiction of this method.
In another improved method, the page order and or selection of a TIFF file is supported by manipulating the next IFD link in each IFD entry. For example, if the user chooses reverse page order, the method would reverse each next IFD link, such that each IFD would now point to the previous IFD, instead of the subsequent IFD. In another example, a page selection can be implemented by changing certain IFD links to skip over IFDs for which printing is not desired (i.e., those pages of the TIFF file which are not part of the page selection to be printed). Further, the manipulations can be performed in memory.
But this method still has limitations, in that: (1) It cannot perform a composition print. Each file is printed as a separate job with each job separately finished. (2) It requires longer processing times. By printing each image file as a separate job, the device incurs an inter-job delay between each image file. (3) It does not perform streaming conversion. If the page order in an image file is non-linear, then the entire image file may need to be read into memory before processing can start. This will result in a longer time before first page out. FIG. 1C is a depiction of this method.
A further improved method uses efficient reordering of pages within a TIFF file. In this method, the IFD's next IFD offsets are re-linked in memory according to the selected/ordered page order. The TIFF data is then passed through a streaming relocator, to relocate the images in streaming page order, which is then passed directly to the printer.
While this method has benefits of performing all operations in memory, it still has limitations, in that: (1) It cannot do composition printing. Each file is printed as a separate job with each job separately finished. (2) It requires longer processing times. By printing each image file as a separate job, the device incurs an inter-job delay between each image file. FIG. 1D is a depiction of this method.